<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Cadastro_veiculo extends CMS_Controller {

    function __construct() {
        parent::__construct();
        $this->load->library('session');
        $this->load->library('form_validation');
        $this->load->language('motocerto/cadastro_veiculo');

        $this->load->add_module('veiculo');
        $this->load->config('veiculo/parametros');
        $this->load->model('veiculo/moto_marca_model');
        $this->load->model('veiculo/moto_modelo_model');
        $this->load->model('veiculo/moto_modelo_dados_model');
        $this->load->model('veiculo/moto_caracteristica_model');


        /* $this->load->library('cep/cep');
          $this->load->language('motocerto/anuncio');
          $this->load->add_module('plano');
          $this->load->config('plano/parametros');
         */
    }

    function index($anuncio_id) {
        if ($this->session->userdata('cep') == false) {
            redirect(base_url() . 'anunciar');
        }
        $v_dados = $this->session->userdata('veiculo_basico');

        //pre($v_dados); 

        if ($v_dados == false) {
            $v_dados = array();
            $v_dados = $this->lang->multi_line($v_dados);
            $v_dados['detalhe'] = array();
            $v_dados['nome'] = '';
            $v_dados['renavam'] = '';
            $v_dados['placa'] = '';
            $v_dados['anuncio_id'] = $anuncio_id;
            $v_dados['link1'] = base_url() . 'moto/' . $anuncio_id;
            $v_dados['link2'] = base_url() . 'moto/gravar/' . $anuncio_id;
        } else {
            unset($v_dados['detalhe']);
            $v_dados['detalhe'] = array();
            $v_dados['anuncio_id'] = $anuncio_id;
            $v_dados['link1'] = base_url() . 'moto/' . $anuncio_id;
            $v_dados['link2'] = base_url() . 'moto/gravar/' . $anuncio_id;
        }
        $this->parser->parse_site('anunciar-2-moto', $v_dados);
    }

    function moto($anuncio_id, $pagina = null) {
        if ($this->session->userdata('cep') == false) {
            redirect(base_url() . 'anunciar');
        }

        $completo = $this->session->userdata('veiculo_completo');
        $basico = $this->session->userdata('veiculo_basico');

        //pre($completo);

        $v_dados = array();
        $v_dados['detalhe'] = array();
        if ($pagina == null) {
            $v_dados['link1'] = base_url() . 'moto/' . $anuncio_id;
            $v_dados['link2'] = base_url() . 'moto/gravar/' . $anuncio_id;
            $v_dados['moto'] = !$this->input->post('moto') ? !$basico ? '' : $basico['moto']  : $basico['moto'] = $this->input->post('moto');
        } else {
            $v_dados['link1'] = base_url() . 'moto/' . $anuncio_id . '/alterar';
            $v_dados['link2'] = base_url() . 'moto/alterar/' . $anuncio_id;
        }
        $v_dados['anuncio_id'] = $anuncio_id;

        /* $this->form_validation->set_rules('nome', 'nome', 'required|trim');
          $this->form_validation->set_rules('moto', 'moto', 'required|trim');
          $this->form_validation->set_rules('renavam', 'renavam', 'required|trim');
          $this->form_validation->set_rules('placa', 'placa', 'required|trim');


          if ($this->form_validation->run()) { */
        //$v_dados['anuncio_id'] = $anuncio_id;
        //if ($this->form_validation->run()) {
        //if (!validaRenavam($this->input->post('renavam'))) {
        //$v_dados['link'] = 'moto/gravar/' . $anuncio_id;
        
        $v_dados['nome'] = !$this->input->post('nome') ? !$basico ? '' : $basico['nome']  : $basico['nome'] = $this->input->post('nome');
        $v_dados['renavam'] = !$this->input->post('renavam') ? !$basico ? '' : $basico['renavam']  : $basico['renavam'] = $this->input->post('renavam');
        $v_dados['placa'] = !$this->input->post('placa') ? !$basico ? '' : $basico['placa']  : $basico['placa'] = $this->input->post('placa');

        if (!$completo) {
            $v_dados['detalhe'][0]['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array(), ' required="required" id="marcas"');
            $v_dados['detalhe'][0]['modelos'] = form_dropdown('modelo', array(), array(), ' required="required" id="modelo"');
            $v_dados['detalhe'][0]['anos_mod'] = form_dropdown('ano_modelo', array(), array(), ' required="required" id="ano_modelo"');
            $v_dados['detalhe'][0]['anos_fab'] = form_dropdown('ano_fabricacao', array(), array(), ' required="required" id="ano_fabricacao"');
        } else {
            $b_consultar = $this->moto_modelo_dados_model->getAnoModeloFull($completo['moto_modelo_dados_id']);
            if ($b_consultar != null) {
                $b_modelo = $this->moto_modelo_dados_model->combo($b_consultar->moto_modelo_id);
                $v_dados['detalhe'][0]['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array($b_consultar->marca_id), ' required="required" id="marcas"');
                $v_dados['detalhe'][0]['modelos'] = form_dropdown('modelo', $this->moto_modelo_model->combo($b_consultar->marca_id), array($b_consultar->moto_modelo_id), ' required="required" id="modelo"');
                $v_dados['detalhe'][0]['anos_fab'] = form_dropdown('ano_fabricacao', $this->moto_modelo_dados_model->comboValor($b_consultar->moto_modelo_id), array($completo['ano_fabricacao']), ' required="required" id="ano_fabricacao"');
                $v_dados['detalhe'][0]['anos_mod'] = form_dropdown('ano_modelo', $b_modelo, array($completo['moto_modelo_dados_id']), ' required="required" id="ano_modelo"');
            } else {
                $v_dados['detalhe'][0]['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array(), ' required="required" id="marcas"');
                $v_dados['detalhe'][0]['modelos'] = form_dropdown('modelo', array(), array(), ' required="required" id="modelo"');
                $v_dados['detalhe'][0]['anos_mod'] = form_dropdown('ano_modelo', array(), array(), ' required="required" id="ano_modelo"');
                $v_dados['detalhe'][0]['anos_fab'] = form_dropdown('ano_fabricacao', array(), array(), ' required="required" id="ano_fabricacao"');
            }
        }
        //numero de marchas
        $v_dados['detalhe'][0]['marchas'] = form_dropdown('marchas', $this->moto_caracteristica_model->combo(1), array(!$completo ? null : $completo['caracteristicas']['marchas']), ' required="required"');

        //tipo motor
        $v_dados['detalhe'][0]['motor'] = form_dropdown('motor', $this->moto_caracteristica_model->combo(4), array(!$completo ? null : $completo['caracteristicas']['motor']), ' required="required"');

        //tipo refrigeracao
        $v_dados['detalhe'][0]['refrigeracao'] = form_dropdown('refrigeracao', $this->moto_caracteristica_model->combo(2), array(!$completo ? null : $completo['caracteristicas']['refrigeracao']), ' required="required"');

        //tipo partida
        $v_dados['detalhe'][0]['partida'] = form_dropdown('partida', $this->moto_caracteristica_model->combo(5), array(!$completo ? null : $completo['caracteristicas']['partida']), ' required="required"');

        //tipo alimentacao
        $v_dados['detalhe'][0]['alimentacao'] = form_dropdown('alimentacao', $this->moto_caracteristica_model->combo(3), array(!$completo ? null : $completo['caracteristicas']['alimentacao']), ' required="required"');

        //freio
        $v_dados['detalhe'][0]['freio'] = form_dropdown('freio', $this->moto_caracteristica_model->combo(7), array(!$completo ? null : $completo['caracteristicas']['freio']), ' required="required"');

        //cor predominante
        $v_dados['detalhe'][0]['cor_p'] = form_dropdown('cor_p', $this->moto_caracteristica_model->combo(8), array(!$completo ? null : $completo['caracteristicas']['cor_p']), ' required="required"');

        //cor secundaria
        $v_dados['detalhe'][0]['cor_s'] = form_dropdown('cor_s', $this->moto_caracteristica_model->combo(9), array(!$completo ? null : $completo['caracteristicas']['cor_s']), ' required="required"');

        //preco
        $v_dados['detalhe'][0]['preco'] = !$completo ? '' : formata_numero_view($completo['preco']);

        //quilometragem
        $v_dados['detalhe'][0]['quilometragem'] = !$completo ? '' : $completo['quilometragem'];

        //obs
        $v_dados['detalhe'][0]['obs'] = !$completo ? '' : $completo['observacao'];

        //adicionais
        $adicionais = $this->moto_caracteristica_model->getCaracteristicasValor(10);
        $v_dados['detalhe'][0]['adicionais'] = array();
        //pre($adicionais);
        if ($adicionais != null) {
            foreach ($adicionais as $key => $value) {
                $data_opcional = array('id' => 'valor_' . $value->id,
                    'name' => 'valor[' . $value->id . ']',
                    'value' => $value->id,
                    'checked' => isset($completo['informacoes'][$value->id]));
                $v_dados['detalhe'][0]['adicionais'][$key]['lbl'] = form_label($value->valor, 'valor_' . $value->id);
                $v_dados['detalhe'][0]['adicionais'][$key]['adicional'] = form_checkbox($data_opcional);
            }
        }

        //opcionais
        $adicionais = $this->moto_caracteristica_model->getCaracteristicasValor(11);
        $v_dados['detalhe'][0]['opcionais'] = array();
        if ($adicionais != null) {
            foreach ($adicionais as $key => $value) {
                $data_opcional = array('id' => 'valor_' . $value->id,
                    'name' => 'valor[' . $value->id . ']',
                    'value' => $value->id,
                    'checked' => isset($completo['informacoes'][$value->id]));
                $v_dados['detalhe'][0]['opcionais'][$key]['lbl'] = form_label($value->valor, 'valor_' . $value->id);
                $v_dados['detalhe'][0]['opcionais'][$key]['opcional'] = form_checkbox($data_opcional);
            }
        }
        //}

        $this->session->set_userdata('veiculo_basico', $basico);
        $this->parser->parse_site('anunciar-2-moto', $v_dados);
    }

    public function gravar($anuncio_id) {
        $this->form_validation->set_rules('nome', 'nome', 'required|trim');
        $this->form_validation->set_rules('moto', 'moto', 'required|trim');
        $this->form_validation->set_rules('renavam', 'renavam', 'required|trim');
        $this->form_validation->set_rules('placa', 'placa', 'required|trim');
        $this->form_validation->set_rules('marcas', 'marcas', 'required|trim');
        $this->form_validation->set_rules('modelo', 'modelo', 'required|trim');
        $this->form_validation->set_rules('ano_fabricacao', 'ano_fabricacao', 'required|trim');
        $this->form_validation->set_rules('ano_modelo', 'ano_modelo', 'required|trim');
        $this->form_validation->set_rules('preco', 'preco', 'required|trim');
        $this->form_validation->set_rules('quilometragem', 'quilometragem', 'required|trim');
        $this->form_validation->set_rules('marchas', 'marchas', 'required|trim');
        $this->form_validation->set_rules('motor', 'motor', 'required|trim');
        $this->form_validation->set_rules('refrigeracao', 'refrigeracao', 'required|trim');
        $this->form_validation->set_rules('partida', 'partida', 'required|trim');
        $this->form_validation->set_rules('alimentacao', 'alimentacao', 'required|trim');
        $this->form_validation->set_rules('freio', 'freio', 'required|trim');
        $this->form_validation->set_rules('cor_p', 'cor_p', 'required|trim');
        $this->form_validation->set_rules('cor_s', 'cor_s', 'required|trim');

        if ($this->form_validation->run() == FALSE) {
            //pre(validation_errors());
            $this->moto($anuncio_id);
        } else {
            //$this->load->model('anuncio_veiculo_model');
            $dados = array();
            //$dados['anuncio_status_id'] = 1;
            //$dados['veiculo_tipo_id'] = 1;
            $dados['veiculo_situacao_id'] = $this->input->post('moto');
            $dados['plano_id'] = $anuncio_id;
            $dados['ano_fabricacao'] = $this->input->post('ano_fabricacao');
            $dados['moto_modelo_dados_id'] = $this->input->post('ano_modelo');
            $dados['nome_proprietario'] = $this->input->post('nome');
            $dados['renavam'] = $this->input->post('renavam');
            $dados['placa'] = $this->input->post('placa');
            $dados['preco'] = formata_numero_db($this->input->post('preco'));
            $dados['quilometragem'] = $this->input->post('quilometragem');
            $dados['observacao'] = $this->input->post('obs');

            //$id = $this->anuncio_veiculo_model->cadastrar($dados);
            //$id = 'd';
            //if ($id != null) {
            //$this->session->set_userdata('veiculo_anuncio', $id);

            $caracteristicas = array('0' => 'marchas',
                '1' => 'motor',
                '2' => 'refrigeracao',
                '3' => 'partida',
                '4' => 'alimentacao',
                '5' => 'freio',
                '6' => 'cor_p',
                '7' => 'cor_s'
            );

            $dados['caracteristicas'] = array();

            foreach ($caracteristicas as $value) {
                $dados['caracteristicas'][$value] = null;
                $entrada = $this->input->post($value);
                //pre($value);
                if ($entrada != false && $entrada != '' && $entrada != null) {
                    //$dados['anuncio_veiculos_id'] = $id;
                    $dados['caracteristicas'][$value] = $entrada;
                    //$this->anuncio_veiculo_model->cadastrarCaracteristicas($dados);
                }
            }

            //pre($dados['caracteristicas']);

            $valores = $this->input->post('valor');
            $dados['informacoes'] = array();
            if ($valores != false) {
                foreach ($valores as $key => $value) {
                    //$dados['anuncio_veiculos_id'] = $id;
                    $dados['informacoes'][$key] = $value;
                    //$this->anuncio_veiculo_model->cadastrarCaracteristicas($dados);
                }
            }

            //pre($dados);

            $this->session->set_userdata('veiculo_completo', $dados);
            redirect(base_url() . 'pessoa');
            /* } else {
              $this->moto($anuncio_id);
              } */
        }
    }

    public function alterar($anuncio_id) {
        $dados = $this->session->userdata('veiculo_completo');
        //$completo = $this->session->userdata('veiculo_completo');
        //$dados['anuncio_status_id'] = 1;
        //$dados['veiculo_tipo_id'] = 1;
        if ($dados == false) {
            redirect(base_url() . 'anunciar');
        } else {
            $dados['veiculo_situacao_id'] = $this->input->post('moto');
            $dados['plano_id'] = $anuncio_id;
            $dados['ano_fabricacao'] = $this->input->post('ano_fabricacao');
            $dados['moto_modelo_dados_id'] = $this->input->post('ano_modelo');
            $dados['nome_proprietario'] = $this->input->post('nome');
            $dados['renavam'] = $this->input->post('renavam');
            $dados['placa'] = $this->input->post('placa');
            $dados['preco'] = formata_numero_db($this->input->post('preco'));
            $dados['quilometragem'] = $this->input->post('quilometragem');
            $dados['observacao'] = $this->input->post('obs');

            //$id = $this->anuncio_veiculo_model->cadastrar($dados);
            //$id = 'd';
            //if ($id != null) {
            //$this->session->set_userdata('veiculo_anuncio', $id);

            $caracteristicas = array('0' => 'marchas',
                '1' => 'motor',
                '2' => 'refrigeracao',
                '3' => 'partida',
                '4' => 'alimentacao',
                '5' => 'freio',
                '6' => 'cor_p',
                '7' => 'cor_s'
            );

            $dados['caracteristicas'] = array();

            foreach ($caracteristicas as $value) {
                $dados['caracteristicas'][$value] = null;
                $entrada = $this->input->post($value);
                //pre($value);
                if ($entrada != false && $entrada != '' && $entrada != null) {
                    //$dados['anuncio_veiculos_id'] = $id;
                    $dados['caracteristicas'][$value] = $entrada;
                    //$this->anuncio_veiculo_model->cadastrarCaracteristicas($dados);
                }
            }

            $valores = $this->input->post('valor');
            $dados['informacoes'] = array();
            if ($valores != false) {
                foreach ($valores as $key => $value) {
                    //$dados['anuncio_veiculos_id'] = $id;
                    $dados['informacoes'][$key] = $value;
                    //$this->anuncio_veiculo_model->cadastrarCaracteristicas($dados);
                }
            }
            
            //pre($dados);
            
            $this->session->set_userdata('veiculo_completo', $dados);

            redirect(base_url() . 'pessoa/validar');
        }
    }

    public function modelos($_marca) {
        $b_consultar = $this->moto_modelo_model->getAllModelosByMarca($_marca);

        if ($b_consultar == null) {
            $b_consultar = array();
        }
        echo json_encode($b_consultar);
    }

    public function anos($_modelo) {
        $b_consultar = $this->moto_modelo_dados_model->getAllAnoModelosByModelo($_modelo);
        if ($b_consultar == null) {
            $b_consultar = array();
        }
        echo json_encode($b_consultar);
    }

}
